/**
 * 日志工具类
 * 用于控制正式版和生产环境的日志输出
 */

const setting = require('../setting/setting.js');

// 判断是否为开发环境
// 从配置文件中读取，正式版设置为 false，开发版设置为 true
const isDev = setting.DEBUG_MODE !== false; // 默认开启，如果设置 DEBUG_MODE: false 则关闭

// 或者根据编译模式判断（如果使用了云开发，可以通过 __wxConfig 判断）
// const isDev = typeof __wxConfig !== 'undefined' && __wxConfig.envVersion === 'develop';

const logger = {
  /**
   * 普通日志
   */
  log(...args) {
    if (isDev) {
      console.log(...args);
    }
  },

  /**
   * 信息日志
   */
  info(...args) {
    if (isDev) {
      console.info(...args);
    }
  },

  /**
   * 警告日志
   */
  warn(...args) {
    if (isDev) {
      console.warn(...args);
    }
  },

  /**
   * 错误日志（正式版也输出，便于排查问题）
   */
  error(...args) {
    // 错误日志在正式版也输出，但可以控制是否输出详细信息
    if (isDev) {
      console.error(...args);
    } else {
      // 正式版只输出简化的错误信息
      console.error('[Error]', args[0]);
    }
  },

  /**
   * 调试日志
   */
  debug(...args) {
    if (isDev) {
      console.log('[DEBUG]', ...args);
    }
  },

  /**
   * 分组日志
   */
  group(...args) {
    if (isDev) {
      console.group(...args);
    }
  },

  /**
   * 结束分组
   */
  groupEnd() {
    if (isDev) {
      console.groupEnd();
    }
  },

  /**
   * 表格日志
   */
  table(...args) {
    if (isDev) {
      console.table(...args);
    }
  }
};

module.exports = logger;

